1. Field of the Invention
The present invention is directed to a system that provides a name for faces and vertices in an hierarchical subdivision surface and, more particularly, provides unique names from which each face of a surface, each vertex of a surface and each edge of a surface can be unambiguously identified.
2. Description of the Related Art
Many computer applications model surfaces and objects. Since computers have a limited storage capacity, an object cannot be modeled with an infinite number of coordinate points. To overcome this problem, methods are used to approximate the object surface with surface primitives. One method uses a polygonal mesh comprising a set of polygonally bounded faces. Representing objects with curved surfaces using a polygonal mesh requires approximating the surface with a number of faces or polygons. The error between the model and the real object can be reduced by making the polygons arbitrarily small. When an object is represented as a set of such polygonal faces, and the representation is loaded into or out from the modeling application, the faces, as well as the vertices and edges need to be identified. In conventional systems, often the same face or vertex is provided with a different identity or identifier each time the representation is loaded into the application. Additionally, when the representation is provided to a different but compatible modeling application, a face or vertex can receive another identity. This changing of the identity of faces and vertices results in inefficient utilization of resources. Inconsistencies between representations make it difficult or impossible to identify the “same” face or vertex in representations that are copies of each other. Such inconsistency is a serious problem in modeling systems.
When a model of an object needs to be made more accurate over all or in a particular area, the modeling application divides larger polygon faces into smaller faces and thereby adapts to a higher resolution representation. When this occurs, the system needs to create face and vertex identities that are not duplicates of other vertices and faces that already exist in the representation, and theses new names need to persist when the representation is loaded and used at a later time such as for input/output.
What is needed is a system that defines a unique name for every face at any level in an adaptive hierarchical subdivision surface, such that the name persists across different executions of the code, so that it can be used for I/O. What is also needed are unique names for the vertices and edges of the polygonal faces of the mesh.